Browser activity replay with advanced navigation

ABSTRACT

Aspects include capturing and replaying activities conducted during a web browsing session. Activities conducted by a user via browser application at a website are received at a computer processor. The activities occur across multiple web pages and span multiple windows during a single browsing session. The activities associated with corresponding web pages, and the activities are ordered in chronological order for each of the web pages. User interface events corresponding to the ordered activities are displayed via a browser based interface. The user interface events are selectable by an end user of the browser based interface.

BACKGROUND

The present invention relates to browser activity replay, and morespecifically, to multi-window, multi-tab browser activity replay.

SUMMARY

According to one embodiment of the present invention, a method forbrowser activity replay with advanced navigation is provided. The methodincludes receiving, by a computer processor, activities conducted by auser via browser application at a website. The activities occur acrossmultiple web pages and span multiple windows during a single browsingsession. The method also includes associating the activities withcorresponding web pages, ordering the activities in chronological orderfor each of the web pages, and displaying, via a browser basedinterface, user interface events corresponding to the orderedactivities. The user interface events are selectable by an end user ofthe browser based interface.

Additional features and advantages are realized through the techniquesof the present invention. Other embodiments and aspects of the inventionare described in detail herein and are considered a part of the claimedinvention. For a better understanding of the invention with theadvantages and the features, refer to the description and to thedrawings.

BRIEF DESCRIPTION OF THE DRAWINGS

The subject matter which is regarded as the invention is particularlypointed out and distinctly claimed in the claims at the conclusion ofthe specification. The forgoing and other features, and advantages ofthe invention are apparent from the following detailed description takenin conjunction with the accompanying drawings in which:

FIG. 1 depicts a block diagram of a system upon which browser activityreplay processes may be implemented according to an embodiment of thepresent invention;

FIG. 2 depicts an architecture that may be used in implementing browseractivity replay processes according to an embodiment of the presentinvention;

FIG. 3 depicts a flow diagram of a process for implementing browseractivity replay with advanced navigation according to an embodiment ofthe present invention;

FIG. 4 depicts a user interface including an unordered navigation listin accordance with an embodiment of the present invention; and

FIG. 5 depicts a user interface including an ordered navigation list inaccordance with an embodiment of the present invention.

DETAILED DESCRIPTION

In a replay mode of a recorded web interaction, one might expect to seethe complete user interaction on their website or mobile application.Web 1.0 style applications which contain popup windows or webapplications that allow users to open multiple tabs demand a holisticexperience of multiple window replay. In some cases, interactions in onewindow reflect interactions in parent windows or windows from the samewebsite. It is possible that interactions in child windows can changethe data in a parent window. In a sequential single window replay, onewould miss the flow of user interaction.

Exemplary embodiments are directed to browser activity replay withadvanced navigation. The browser activity replay processes enablemulti-window, multi-tab browser activity replay of end users ofcorresponding browser sessions at a website. Views are shown as layeredpopup windows. By providing the views as layered popups, users canbetter correlate to the original experience of the website.

Turning now to FIG. 1, a block diagram of a system for implementingbrowser activity replay processes will now be described. The system 100of FIG. 1 includes a host system server 102, a client server 104, and auser system 106, each of which is communicatively coupled to one or morenetworks 108. The networks 108 may be any type of network or combinationof networks known in the art.

The host system server 102 and client server 104 may be implemented,e.g., via any high-speed computer processing device capable ofperforming a high volume of activities as described herein. In anembodiment, the host system server 102 executes one or more applicationsfor implementing the browser activity replay processes described herein.The host system server 102 may perform these processes as a service toone or more client enterprises, e.g., client server 104. The host systemserver 102 is communicatively coupled to a storage device 112 forstoring user activities conducted at client server websites.

The user system 106 may be a general purpose computer or desktopcomputer, mobile device, or other type of processing device. The usersystem 106 executes a browser application 110 for accessing one or morewebsites (e.g., a website of the client server 104) and performingvarious activities therefrom.

Turning now to FIG. 2, a diagram depicting an architecture that may beused in implementing browser activity replay processes will now bedescribed in an embodiment. The architecture 200 includes a network 202through which user activities conducted by user systems are captured. Asshown in FIG. 2, data may be captured through a network 202 via apassive capture application and is distributed to a storage device 206via a session pipeline 204. The session indicates a browser sessionconducted between a user system and a client server's website. Thecaptured data is stored in the storage device 206. In an embodiment, thenetwork 202 may correlate the network 108 of FIG. 1. In addition, thestorage device 206 may correlate to the storage device 112 of FIG. 1.

A replay server 208 (which may correlate to one or both of the clientserver 104 and the host system server 102) renders different views orpages for a given browsing session via a browser based replayapplication 210, as will be described further herein.

Turning now to FIG. 3, a flow diagram describing a process forimplementing browser activity replay with advanced navigation will nowbe described in an embodiment. At block 302, activities conducted by auser (e.g., user system 106) via a web browser application (e.g.,browser 110) are received. The user activities may be collected on theclient side (user system) via, e.g., Javascript Libraries. Eachinteraction message contains the client-side timestamp of when theinteraction occurred. Client messages may also include Load and Unloadof page events, which act as markers of when a window or page wascreated or removed. The client may send data as a batch containing manymessages from the same web page.

The user activities may occur across multiple web pages and spanmultiple tabs and/or windows during a single browsing session of theuser. The activities include scrolling through a web page, selecting atab, selecting a link on the web page, advancing to a different webpage, returning to a previous web page, logging in to a web site,logging out of a web site, entering data into a form, and creating amessage, to name a few.

Receiving the activities includes receiving messages includingtimestamps indicating when each of the activities occurred.

At block 304, the activities are associated with their corresponding webpages. This may be implemented by assigning an identifier to theactivities that indicates their association with the corresponding webpage. At block 306, the activities are ordered in chronological order(e.g., via their timestamps) for each of the web pages.

At block 308, user interface events corresponding to the orderedactivities are displayed via a browser based interface. The displayingof the user events includes displaying the load and unload events inchronological order of occurrence. The load and unload events indicateloading and unloading of the web pages by the end user.

The events are selectable by a user of the browser based interface.Sample interface screens are shown in FIGS. 4 and 5.

Upon receiving a selected user interface event, the browser basedinterface determines a number of windows that are active at the time theactivities were captured. This determination may be implemented bytraversing upward in the navigation list and identifying all loadmessages that do not have matching unload messages.

The display process may be implemented by creating hypertext markuplanguage (HTML) popup windows with iframes pointing to a most recentreplay of each active window, and overlaying the popup windows on top ofeach other with an ordered index of the popup windows, to indicate mostrecent activities on each active window. Alternatively, the displayprocess may be implemented by displaying active windows as tabs. Uponselection of one of the corresponding entries in the navigation list, areplay of a corresponding window is displayed.

FIG. 4 illustrates a user interface including an unordered navigationlist, and FIG. 5 depicts a user interface including an orderednavigation list.

The terminology used herein is for the purpose of describing particularembodiments only and is not intended to be limiting of the invention. Asused herein, the singular forms “a”, “an” and “the” are intended toinclude the plural forms as well, unless the context clearly indicatesotherwise. It will be further understood that the terms “comprises”and/or “comprising,” when used in this specification, specify thepresence of stated features, integers, steps, operations, elements,and/or components, but do not preclude the presence or addition of oneor more other features, integers, steps, operations, elements,components, and/or groups thereof.

The corresponding structures, materials, acts, and equivalents of allmeans or step plus function elements in the claims below are intended toinclude any structure, material, or act for performing the function incombination with other claimed elements as specifically claimed. Thedescription of the present invention has been presented for purposes ofillustration and description, but is not intended to be exhaustive orlimited to the invention in the form disclosed. Many modifications andvariations will be apparent to those of ordinary skill in the artwithout departing from the scope and spirit of the invention. Theembodiments were chosen and described in order to best explain theprinciples of the invention and the practical application, and to enableothers of ordinary skill in the art to understand the invention forvarious embodiments with various modifications as are suited to theparticular use contemplated.

The present invention may be a system, a method, and/or a computerprogram product at any possible technical detail level of integration.The computer program product may include a computer readable storagemedium (or media) having computer readable program instructions thereonfor causing a processor to carry out aspects of the present invention.

The computer readable storage medium can be a tangible device that canretain and store instructions for use by an instruction executiondevice. The computer readable storage medium may be, for example, but isnot limited to, an electronic storage device, a magnetic storage device,an optical storage device, an electromagnetic storage device, asemiconductor storage device, or any suitable combination of theforegoing. A non-exhaustive list of more specific examples of thecomputer readable storage medium includes the following: a portablecomputer diskette, a hard disk, a random access memory (RAM), aread-only memory (ROM), an erasable programmable read-only memory (EPROMor Flash memory), a static random access memory (SRAM), a portablecompact disc read-only memory (CD-ROM), a digital versatile disk (DVD),a memory stick, a floppy disk, a mechanically encoded device such aspunch-cards or raised structures in a groove having instructionsrecorded thereon, and any suitable combination of the foregoing. Acomputer readable storage medium, as used herein, is not to be construedas being transitory signals per se, such as radio waves or other freelypropagating electromagnetic waves, electromagnetic waves propagatingthrough a waveguide or other transmission media (e.g., light pulsespassing through a fiber-optic cable), or electrical signals transmittedthrough a wire.

Computer readable program instructions described herein can bedownloaded to respective computing/processing devices from a computerreadable storage medium or to an external computer or external storagedevice via a network, for example, the Internet, a local area network, awide area network and/or a wireless network. The network may comprisecopper transmission cables, optical transmission fibers, wirelesstransmission, routers, firewalls, switches, gateway computers and/oredge servers. A network adapter card or network interface in eachcomputing/processing device receives computer readable programinstructions from the network and forwards the computer readable programinstructions for storage in a computer readable storage medium withinthe respective computing/processing device.

Computer readable program instructions for carrying out operations ofthe present invention may be assembler instructions,instruction-set-architecture (ISA) instructions, machine instructions,machine dependent instructions, microcode, firmware instructions,state-setting data, configuration data for integrated circuitry, oreither source code or object code written in any combination of one ormore programming languages, including an object oriented programminglanguage such as Smalltalk, C++, or the like, and procedural programminglanguages, such as the “C” programming language or similar programminglanguages. The computer readable program instructions may executeentirely on the user's computer, partly on the user's computer, as astand-alone software package, partly on the user's computer and partlyon a remote computer or entirely on the remote computer or server. Inthe latter scenario, the remote computer may be connected to the user'scomputer through any type of network, including a local area network(LAN) or a wide area network (WAN), or the connection may be made to anexternal computer (for example, through the Internet using an InternetService Provider). In some embodiments, electronic circuitry including,for example, programmable logic circuitry, field-programmable gatearrays (FPGA), or programmable logic arrays (PLA) may execute thecomputer readable program instructions by utilizing state information ofthe computer readable program instructions to personalize the electroniccircuitry, in order to perform aspects of the present invention.

Aspects of the present invention are described herein with reference toflowchart illustrations and/or block diagrams of methods, apparatus(systems), and computer program products according to embodiments of theinvention. It will be understood that each block of the flowchartillustrations and/or block diagrams, and combinations of blocks in theflowchart illustrations and/or block diagrams, can be implemented bycomputer readable program instructions.

These computer readable program instructions may be provided to aprocessor of a general purpose computer, special purpose computer, orother programmable data processing apparatus to produce a machine, suchthat the instructions, which execute via the processor of the computeror other programmable data processing apparatus, create means forimplementing the functions/acts specified in the flowchart and/or blockdiagram block or blocks. These computer readable program instructionsmay also be stored in a computer readable storage medium that can directa computer, a programmable data processing apparatus, and/or otherdevices to function in a particular manner, such that the computerreadable storage medium having instructions stored therein comprises anarticle of manufacture including instructions which implement aspects ofthe function/act specified in the flowchart and/or block diagram blockor blocks.

The computer readable program instructions may also be loaded onto acomputer, other programmable data processing apparatus, or other deviceto cause a series of operational steps to be performed on the computer,other programmable apparatus or other device to produce a computerimplemented process, such that the instructions which execute on thecomputer, other programmable apparatus, or other device implement thefunctions/acts specified in the flowchart and/or block diagram block orblocks.

The flowchart and block diagrams in the Figures illustrate thearchitecture, functionality, and operation of possible implementationsof systems, methods, and computer program products according to variousembodiments of the present invention. In this regard, each block in theflowchart or block diagrams may represent a module, segment, or portionof instructions, which comprises one or more executable instructions forimplementing the specified logical function(s). In some alternativeimplementations, the functions noted in the blocks may occur out of theorder noted in the Figures. For example, two blocks shown in successionmay, in fact, be executed substantially concurrently, or the blocks maysometimes be executed in the reverse order, depending upon thefunctionality involved. It will also be noted that each block of theblock diagrams and/or flowchart illustration, and combinations of blocksin the block diagrams and/or flowchart illustration, can be implementedby special purpose hardware-based systems that perform the specifiedfunctions or acts or carry out combinations of special purpose hardwareand computer instructions.

The descriptions of the various embodiments of the present inventionhave been presented for purposes of illustration, but are not intendedto be exhaustive or limited to the embodiments disclosed. Manymodifications and variations will be apparent to those of ordinary skillin the art without departing from the scope and spirit of the describedembodiments. The terminology used herein was chosen to best explain theprinciples of the embodiments, the practical application or technicalimprovement over technologies found in the marketplace, or to enableothers of ordinary skill in the art to understand the embodimentsdisclosed herein.

1. A method for capturing and replaying activities conducted during aweb browsing session, the method comprising: receiving, by a computerprocessor, the activities conducted by a user via a browser applicationat a website, the activities occurring across multiple web pages andspanning multiple windows during the web browsing session, wherein thereceiving includes receiving messages including load messages and unloadmessages with respect to the activities, the load messages includingload events indicating loading of the web pages and the unloadedmessages including unload events indicating unloading of the web pages;associating the activities with corresponding web pages; ordering theactivities in chronological order for each of the web pages; displaying,via a browser based interface, user interface events corresponding tothe ordered activities, the user interface events selectable by an enduser of the browser based interface, wherein the displaying, via thebrowser based interface, the user interface events includes presentingthe user interface events in a navigation list via the browser basedinterface and displaying the load and unload events in chronologicalorder of occurrence; and upon receiving a selected user interface event,determining a number of active windows that are active at the time theactivities were captured, the determining implemented by traversingupward in the navigation list and identifying each load message thatdoes not have a matching unload message.
 2. The method of claim 1,wherein the activities span multiple tabs across the multiple web pages,and the associating includes associating the activities spanning themultiple tabs with corresponding tabs.
 3. The method of claim 2, whereinthe activities include one or more of scrolling through a web page,selecting a tab, selecting a link on the web page, advancing to adifferent web page, returning to a previous web page, logging in to aweb site, logging out of a web site, entering data into a form, orcreating a message.
 4. The method of claim of claim 1, wherein eachmessage includes a respective timestamp indicating when a correspondingactivity of the activities occurred, wherein the activities are orderedbased on each respective timestamp. 5.-6. (canceled)
 7. The method ofclaim 1, wherein the displaying further includes: creating hypertextmarkup language (HTML) popup windows with iframes pointing to a mostrecent replay of each active window; and overlaying the popup windows ontop of each other with an ordered index of the popup windows, toindicate most recent activities on each active window.
 8. The method ofclaim 1, wherein the selected user interface event is a first userinterface event, and wherein the displaying further includes: displayingthe active windows as tabs; receiving a selection of a second userinterface event associated with a particular tab; and presenting areplay of an active window corresponding to the second user interfaceevent.
 9. A computer system for capturing and replaying activitiesconducted during a web browsing session, the computer system comprising:a memory having computer readable instructions; and a processorconfigured to execute the computer readable instructions to: receive theactivities conducted by a user via a browser application at a website,the activities occurring across multiple web pages and spanning multiplewindows during the web browsing session, wherein the receiving includesreceiving messages including load messages and unload messages withrespect to the activities, the load messages including load eventsindicating loading of the web pages and the unloaded messages includingunload events indicating unloading of the web pages; associating theactivities with corresponding web pages; ordering the activities inchronological order for each of the web pages; displaying, via a browserbased interface, user interface events corresponding to the orderedactivities, the user interface events selectable by an end user of thebrowser based interface, wherein the displaying, via the browser basedinterface, the user interface events includes presenting the userinterface events in a navigation list via the browser based interfaceand displaying the load and unload events in chronological order ofoccurrence; and upon receiving a selected user interface event,determining a number of active windows that are active at the time theactivities were captured, the determining implemented by traversingupward in the navigation list and identifying each load message thatdoes not have a matching unload message.
 10. The system of claim 9,wherein the activities span multiple tabs across the multiple web pages,and the associating includes associating the activities spanning themultiple tabs with corresponding tabs.
 11. The system of claim 10,wherein the activities include one or more of scrolling through a webpage, selecting a tab, selecting a link on the web page, advancing to adifferent web page, returning to a previous web page, logging in to aweb site, logging out of a web site, entering data into a form, orcreating a message.
 12. The system of claim of claim 9, wherein eachmessage includes a respective timestamp indicating when a correspondingactivity of the activities occurred, wherein the activities are orderedbased on each respective timestamp. 13.-14. (canceled)
 15. The system ofclaim 9, wherein the displaying further includes: creating hypertextmarkup language (HTML) popup windows with iframes pointing to a mostrecent replay of each active window; and overlaying the popup windows ontop of each other with an ordered index of the popup windows, toindicate most recent activities on each active window.
 16. The system ofclaim 9, wherein the selected user interface event is a first userinterface event, and wherein the displaying further includes: displayingthe active windows as tabs; receiving a selection of a second userinterface event associated with a particular tab; and presenting areplay of an active window corresponding to the second user interfaceevent.
 17. A computer program product comprising a non-transitorycomputer readable storage medium having program instructions embodiedtherewith, the program instructions executable by a processor to causethe processor to perform a method comprising: receiving the activitiesconducted by a user via a browser application at a website, theactivities occurring across multiple web pages and spanning multiplewindows during the web browsing session, wherein the receiving includesreceiving messages including load messages and unload messages withrespect to the activities, the load messages including load eventsindicating loading of the web pages and the unloaded messages includingunload events indicating unloading of the web pages; associating theactivities with corresponding web pages; ordering the activities inchronological order for each of the web pages; displaying, via a browserbased interface, user interface events corresponding to the orderedactivities, the user interface events selectable by an end user of thebrowser based interface, wherein the displaying, via the browser basedinterface, the user interface events includes presenting the userinterface events in a navigation list via the browser based interfaceand displaying the load and unload events in chronological order ofoccurrence; and upon receiving a selected user interface event,determining a number of active windows that are active at the time theactivities were captured, the determining implemented by traversingupward in the navigation list and identifying each load message thatdoes not have a matching unload message.
 18. The computer programproduct of claim 17, wherein the activities span multiple tabs acrossthe multiple web pages, and the associating includes associating theactivities spanning the multiple tabs with corresponding tabs.
 19. Thecomputer program product of claim 18, wherein the activities include oneor more of scrolling through a web page, selecting a tab, selecting alink on the web page, advancing to a different web page, returning to aprevious web page, logging in to a web site, logging out of a web site,entering data into a form, or creating a message.
 20. The computerprogram product of claim 17, wherein each message includes a respectivetimestamp indicating when a corresponding activity of the activitiesoccurred, wherein the activities are ordered based on each respectivetimestamp.